// pages/publish-select/publish-select.ts
import {PAGES, goToPage, PAGE_LOGIN} from '../../config/pages';
import { isPaidMember } from '../../utils/userManager.js';
import userManager from '../../utils/userManager.js';
import {checkLogin} from "../../libs/login";

Page({
  data: {
    // 页面数据
    userEnterprise: null as any, // 用户企业信息
    hasEnterprise: false, // 用户是否已有企业
    enterpriseStatus: '', // 企业审核状态（0:审核中, 1:审核通过, 2:审核未通过）
    // 初始化完成标志
    initialized: false,
  },

  async onLoad() {
    console.log('发布选择页面加载完成');
    await this.checkLoginStatus();
  },

  onShow() {
    console.log('发布选择页面显示');
    // 更新TabBar选中状态
    if (typeof this.getTabBar === 'function' && this.getTabBar()) {
      this.getTabBar().setData({
        selected: 2
      });
    }
    
    // 只有在初始化完成后才刷新企业信息
    if (this.data.initialized) {
      this.loadUserEnterpriseInfo();
    }
  },

  // 检查登录状态
  async checkLoginStatus() {
    if (!checkLogin()) {
      // 未登录，跳转到登录页面
      goToPage(PAGE_LOGIN, {}, 'reLaunch');
      return;
    }
    
    // 登录检查完成，设置初始化标志并加载企业信息
    this.setData({ initialized: true });
    await this.loadUserEnterpriseInfo();
  },

  // 加载用户企业信息
  async loadUserEnterpriseInfo() {
    try {
      // ✅ 从用户信息缓存中获取企业数据（不单独请求接口）
      const userData: any = await userManager.getUserInfo(false, false);
      console.log('从缓存获取用户信息（含企业）:', userData);
      
      if (userData && userData.enterprise) {
        // 用户已有企业信息
        this.setData({
          userEnterprise: userData.enterprise,
          hasEnterprise: true,
          enterpriseStatus: userData.enterprise.status || ''
        });
      } else {
        // 用户没有企业信息
        this.setData({
          userEnterprise: null,
          hasEnterprise: false,
          enterpriseStatus: ''
        });
      }
    } catch (error) {
      console.error('获取用户企业信息失败:', error);
      // 发生错误时，默认为没有企业
      this.setData({
        userEnterprise: null,
        hasEnterprise: false,
        enterpriseStatus: ''
      });
    }
  },

  // 选择发布类型
  selectOption(e: any) {
    const type = e.currentTarget.dataset.type;
    console.log('选择发布类型:', type);
    
    // 检查是否为付费会员
    if (!isPaidMember()) {
      this.showMembershipRequiredModal();
      return;
    }
    
    // 根据类型跳转到对应页面
    switch(type) {
      case 'group':
        goToPage(PAGES.PUBLISH_GROUP);
        break;
      case 'demand':
        goToPage(PAGES.PUBLISH_DEMAND);
        break;
      case 'processing':
        goToPage(PAGES.PUBLISH_PROCESSING);
        break;
      case 'material':
        goToPage(PAGES.PUBLISH_MATERIAL);
        break;
      case 'inventory':
        goToPage(PAGES.PUBLISH_INVENTORY);
        break;
      default:
        goToPage(PAGES.CREATE_ENTERPRISE);
        console.log('未知类型:', type);
    }
  },

  // 显示需要会员的提示弹窗
  showMembershipRequiredModal() {
    wx.showModal({
      title: '需要付费会员',
      content: '发布信息需要购买付费会员，是否立即开通？',
      confirmText: '立即开通',
      cancelText: '取消',
      success: (res) => {
        if (res.confirm) {
          // 跳转到会员注册页面
          this.goToMembership();
        }
      }
    });
  },

  // 跳转到会员注册页面
  goToMembership() {
    goToPage(PAGES.MEMBERSHIP_REGISTER);
  },

  // 跳转到企业认证页面（根据用户企业状态判断）
  goToCreateEnterprise() {
    const { hasEnterprise } = this.data;
    
    if (hasEnterprise) {
      // 用户已有企业，跳转到我的企业页面
      console.log('用户已有企业，跳转到我的企业页面');
      goToPage(PAGES.MY_ENTERPRISE);
    } else {
      // 用户没有企业，跳转到创建企业页面
      console.log('用户没有企业，跳转到创建企业页面');
      goToPage(PAGES.CREATE_ENTERPRISE);
    }
  }
});